<?php

/**
 * dashboard actions.
 *
 * @package    cronos-doctrine
 * @subpackage dashboard
 * @author     Your name here
 * @version    SVN: $Id: actions.class.php 23810 2009-11-12 11:07:44Z Kris.Wallsmith $
 */
class dashboardActions extends sfActions
{
 /**
  * Executes index action
  *
  * @param sfRequest $request A request object
  */
  public function executeIndex(sfWebRequest $request)
  {
      
      
            
      
     //echo $this->getUser()->getGuardUser()->getEntidadId().'ho';
      
     if ($this->getUser()->isFirstRequest())    {
         
        $this->getUser()->isFirstRequest(false);
        $this->agente_id = $this->getUser()->getAttribute('agente_user');
        $date= new DateTime($this->getUser()->getAttribute('agente_user_fecha_ultima'));
        $this->getUser()->setAttribute('page', 1);
        
        $operadores = new OperadoresEgresos();
        $operadores = $operadores->getOperadoresEgresosDias();
        
        
      }else {
          
          
        $this->agente_id = $this->getUser()->getAttribute('agente_user');
        $date= new DateTime($this->getUser()->getAttribute('agente_user_fecha_ultima'));
        
        
      }
     
     $permisos = $this->getUser()->getGuardUser()->getPermissions();
     
     $valor = '';
    foreach ($permisos as $permiso) {
        $valor[$permiso->getId()] = $permiso->getId()."<br>";
    }
     
        
          $filtros      = $request->getParameter('usuario_filters');
          $usuarios = new Usuario();
          $this->consulta = $usuarios->getUsuariosPager();
          $this->consulta->leftJoin('r.EstrategiaHasUsuario estr ON  r.id =  estr.usuario_id');
          $this->consulta->where("estr.agente_id='".$this->getUser()->getGuardUser()->getId()."'");
          $this->consulta->addWhere("estr.fecha='".date('Y-m-d')."'");
          $this->consulta->addWhere("estr.status is null");
          $this->consulta->orderBy('estr.llamada_estrategia_id asc');
          $this->consulta->addOrderBy('estr.id asc');
          
          $this->consulta->leftJoin('r.Parroquia p');
          $this->consulta->leftJoin('p.Zona z');
          
          
          
           if($filtros['busqueda']['text']){
              
              
              $this->consulta->leftJoin('r.Telefono tel ON tel.usuario_id = r.id');
              
                          
                            if(is_numeric($filtros['busqueda']['text'])){

                                if(strlen($filtros['busqueda']['text'])<=5){
                                    $this->consulta->addWhere('r.id = "'.$filtros['busqueda']['text'].'"');
                                }else{
                                    $this->consulta->addWhere('tel.numero like "%'.$filtros['busqueda']['text'].'%"');
                                }

                            }
                            
                      
                        
                 //echo $this->consulta;       
              
              }
          
           
          
          //Si es por parroquia o Colonia
            if($filtros['parroquia_id']) {
                $parroquia = $filtros['parroquia_id'];
                $this->consulta->andWhere('r.parroquia_id =   ?', $parroquia);
            }
          
            
            
          //Si es por Zona, Area, Entidad o Municipio 
            if($filtros['zona_id'] || $filtros['area_id']){
                
                $parroquiaJoin = false;
                
                //Filtros de Zonas
                if($filtros['zona_id']) {
                    $zonas = $filtros['zona_id'];
                    $this->consulta->andWhere('p.zona_id =   ?', $zonas);
                }

                //Filtros de Area
                if($filtros['area_id']){
                    $this->consulta->leftJoin('p.Zona z');
                    $zonaJoin = false;
                    $areas = $filtros['area_id'];
                    $this->consulta->andWhere('z.area_id =   ?', $areas);
                }
                

          }
            
            
      
          
          
      //Hace permanente la pagina en una variable de sesion
      if($request->getParameter('page')){
          $this->getUser()->setAttribute('page', $request->getParameter('page'));
      }
      
      
      
      //$this->agente_id = 1;
      $this->usur = $date->format('d-m-Y H:i');
      $this->ip = $this->getRequest()->getHttpHeader ('addr','remote');
      
      
      $this->pager = new sfDoctrinePager('Usuario', sfConfig::get('app_cliente_x_pag'));
      $this->pager->setQuery($this->consulta);
      $this->pager->setPage($this->getUser()->getAttribute('page'));
      $this->pager->init();

      
      

  }
  
  public function fechaCambio($fecha){
       
       $fecha = explode('-',$fecha);
       $fecha = $fecha[2].'-'.$fecha[1].'-'.$fecha[0];
       return ($fecha);
       
   }
  
  public function executeAdicional(sfWebRequest $request)
  {
     
     
    
  
        $this->agente_id = $this->getUser()->getAttribute('agente_user');
        $date = new DateTime($this->getUser()->getAttribute('agente_user_fecha_ultima'));
        
        if($request->getParameter('formu')=='Filtrar'){
            
            //Asigna a la variable de sesion, todos los valores del filtro para q se mantenga
            $this->getUser()->setAttribute("usuario_filters_adicional", $request->getParameter('usuario_filters'));
            //Empieza la Paginacion en la pagina 1
            $this->getUser()->setAttribute('page', 1);
            
            
            
        }    
            
        //Crea la consulta del Filtro con los valores de la variable de sesion
        $filtros = $this->getUser()->getAttribute('usuario_filters_adicional');
        $this->filtro = $filtros;
        
        $this->consulta = new Usuario();
        $this->consulta = $this->consulta->getUsuariosPager();
        
       
        
          $this->consulta->leftJoin('r.Parroquia p');
          $this->consulta->leftJoin('p.Zona z');
          
          
          
            
          if($filtros['busqueda']['text']){
              
              $this->consulta->leftJoin('r.Mascota masc ON masc.usuario_id = r.id');
              $this->consulta->leftJoin('r.Telefono tel ON tel.usuario_id = r.id');
              $this->consulta->leftJoin('r.Direccion direc ON direc.usuario_id = r.id');
              
              
              
              
              $campoBusquedas = explode("+",$filtros['busqueda']['text']);
              
              
                        
                      foreach ($campoBusquedas as $campoBusqueda){  
                          
                            if(is_numeric($campoBusquedas[0])){

                                if(strlen($campoBusquedas[0])<=5){
                                    $this->consulta->orWhere('r.id like "'.$campoBusquedas[0].'"');
                                }else{
                                    $this->consulta->orWhere('tel.numero like "%'.$campoBusquedas[0].'%"');
                                }

                            }else{
                                
                                $this->consulta->orWhere('CONCAT(r.nombre," ",r.apellido) like "%'.$campoBusqueda.'%"');
                                //$this->consulta->orWhere('r.nombre like "%'.$campoBusquedas[0].'"');
                                //$this->consulta->orWhere('r.apellido like "%'.$campoBusquedas[0].'"');
                                $this->consulta->orWhere('masc.nombre like "%'.$campoBusqueda.'"');
                                $this->consulta->orWhere('p.nombre like "%'.$campoBusqueda.'%"');
                                $this->consulta->orWhere('direc.descripcion like "%'.$campoBusqueda.'"');
                                
                            }
                            
                      }
                        
                        
              
              }
              
              
              
          
          
              
              
                  
          //Si esta depurado
          if(!empty($filtros['depuracionind']['text'])) {
              
              if($filtros['depuracionind']['text']==1)
              $this->consulta->andWhere('r.depuracion =?',$filtros['depuracionind']['text']);
              else
              $this->consulta->andWhere('r.depuracion=0');
              
              
              
          }
             
          
          
          
          
          //Si esta depurado
          if(!empty($filtros['alimento_capturado']['text'])) {
              
              $this->consulta->leftJoin('r.UsuarioHasMarca uhp On uhp.usuario_id = r.id');
              $this->consulta->addWhere('uhp.empresa_id='.$this->getUser()->getAttribute('agente_user_empresa_id'));
              $this->consulta->where('uhp.usuario_id= r.id');
              
              
          }
          
          if($filtros['cp']['text']) {
              
              $this->consulta->andWhere('p.cp =   ?', $filtros['cp']['text']);
              
          }
          
          
          //Si es por parroquia o Colonia
            if($filtros['parroquia_id']) {
                $filtros['parroquia_id'];
                $this->consulta->andWhere('r.parroquia_id =   ?', $filtros['parroquia_id']);
            }
          
             //Filtros de Zonas
             if($filtros['zona_id']) {
                    
                    $this->consulta->andWhere('z.id =  '.$filtros['zona_id'].'');
                    
             }

             
             
             //Ordenado de Area
             if($filtros['zona_order_by']){
                    
                $this->consulta->addOrderBy('z.nombre '.$filtros['zona_order_by'].'');
             }
             
             
             //Ordenado de Colonia
             if($filtros['parroquia_order_by']){
                    
                    $this->consulta->addOrderBy('p.nombre '.$filtros['parroquia_order_by'].'');
             }
             
             
             
             //Ordenado de Calle
             if($filtros['direccion_order_by']){
                
                 
                 $this->consulta->leftJoin('r.Direccion dire');
                 $this->consulta->addWhere('dire.direccion_etiqueta_id = 1');
                 $this->consulta->addOrderBy('dire.descripcion '.$filtros['direccion_order_by'].'');
                 
             }
             
             
             
                 if(($filtros['servicio'])&&($filtros['status'])){
                 
                     
                 $this->consulta->leftJoin('r.LlamadaProgramada llmP ON llmP.usuario_id = r.id');
                 $this->consulta->addWhere('llmP.empresa_id='.$this->getUser()->getAttribute('agente_user_empresa_id'));
                 $this->consulta->andWhere('llmP.id = (SELECT MAX(llss1.id) from LlamadaProgramada llss1 where llss1.llamada_id IS NOT NULL and llss1.usuario_id = llmP.usuario_id and llss1.categoria_id = '.$filtros['servicio'].' GROUP BY llss1.usuario_id)');
                 $this->consulta->leftJoin('llmP.Llamada llmS ON llmS.id = llmP.llamada_id');
                 $this->consulta->andWhere('llmS.llamada_status_id ='.$filtros['status']);
                     
                     
                 }
                 
                 
             
             //Ordenado por periodicidad
             if(($filtros['servicio'])&&($filtros['desde']['text'])&&($filtros['hasta']['text'])){
                 
                 
                 $this->consulta->leftJoin('r.Agendado ag');
                 $this->consulta->addWhere('ag.empresa_id='.$this->getUser()->getAttribute('agente_user_empresa_id'));
                 $this->consulta->addWhere('ag.id = (SELECT max(ags.id) from Agendado ags where ags.usuario_id = ag.usuario_id and ags.servicio_tipo_id = '.$filtros['servicio'].')');
                 
                 $this->consulta->leftJoin('ag.LlamadaServicio llamserv ON llamserv.usuario_id = ag.usuario_id');
                 $this->consulta->addWhere('llamserv.categoria_id ='.$filtros['servicio']);
                 $this->consulta->addWhere('(ADDDATE(DATE_FORMAT(ag.fecha_asig,"%Y-%m-%d"), llamserv.periodicidad)) >="'.$this->fechaCambio($filtros['desde']['text']).'"' );
                 $this->consulta->addWhere('(ADDDATE(DATE_FORMAT(ag.fecha_asig,"%Y-%m-%d"), llamserv.periodicidad)) <="'.$this->fechaCambio($filtros['hasta']['text']).'"' );
                 
                 
                 
             }
             
             
             //Ordenado por llamadas Programadas
             if(($filtros['servicio'])&&($filtros['desde_llam']['text'])&&($filtros['hasta_llam']['text'])){
                 
                 $this->consulta->leftJoin('r.LlamadaProgramada llmada ON llmada.usuario_id = r.id');
                 $this->consulta->addWhere('llmada.empresa_id='.$this->getUser()->getAttribute('agente_user_empresa_id'));
                 $this->consulta->where('llmada.id = (SELECT max(llmadas.id) from LlamadaProgramada llmadas where llmadas.usuario_id = llmada.usuario_id and llmadas.cita_telefonica is null and llmadas.llamada_id is null and llmadas.categoria_id = '.$filtros['servicio'].')');
                 $this->consulta->addWhere('llmada.categoria_id ='.$filtros['servicio']);
                 $this->consulta->addWhere('llmada.fecha >="'.$this->fechaCambio($filtros['desde_llam']['text']).'"' );
                 $this->consulta->addWhere('llmada.fecha <="'.$this->fechaCambio($filtros['hasta_llam']['text']).'"' );
                 
               
                 
             }
            
      $this->consulta->addWhere('r.empresa_id='.$this->getUser()->getAttribute('agente_user_empresa_id'));
      
          
      //Hace permanente la pagina en una variable de sesion
      if($request->getParameter('page')){
          $this->getUser()->setAttribute('page', $request->getParameter('page'));
      }
      
      
      //$this->agente_id = 1;
      $this->usur = $date->format('d-m-Y H:i');
      $this->ip = $this->getRequest()->getHttpHeader ('addr','remote');
      
      $this->pager = new sfDoctrinePager('Usuario', sfConfig::get('app_cliente_x_pag'));
      $this->pager->setQuery($this->consulta);
      $this->pager->setPage($this->getUser()->getAttribute('page'));
      $this->pager->init();


      

  }
  
  public function executeAdicionalBusq(sfWebRequest $request)
  {
     
     
    
  
        $this->agente_id = $this->getUser()->getAttribute('agente_user');
        $date = new DateTime($this->getUser()->getAttribute('agente_user_fecha_ultima'));
        
        if($request->getParameter('formu')=='Filtrar'){
            
            //Asigna a la variable de sesion, todos los valores del filtro para q se mantenga
            $this->getUser()->setAttribute("usuario_filters_adicional", $request->getParameter('usuario_filters'));
            //Empieza la Paginacion en la pagina 1
            $this->getUser()->setAttribute('page', 1);
            
            
            
        }    
            
        //Crea la consulta del Filtro con los valores de la variable de sesion
        $filtros = $this->getUser()->getAttribute('usuario_filters_adicional');
        $this->filtro = $filtros;
        
        $this->consulta = new Usuario();
        $this->consulta = $this->consulta->getUsuariosPager();
        
        if($request->getParameter('usuarioid')){
            
            $alertaCliente = Doctrine_Query::create()
                            ->delete('AlertaCliente ac')
                            ->where('ac.id=?',$request->getParameter('alerta_id'))
                            ->execute();
                           
        }
        
        
      $this->consulta->addWhere('r.id = "'.$request->getParameter('usuarioid').'"');
      $this->consulta->addWhere('r.empresa_id='.$this->getUser()->getAttribute('agente_user_empresa_id'));
      
          
      //Hace permanente la pagina en una variable de sesion
      if($request->getParameter('page')){
          $this->getUser()->setAttribute('page', $request->getParameter('page'));
      }
      
      
      //$this->agente_id = 1;
      $this->usur = $date->format('d-m-Y H:i');
      $this->ip = $this->getRequest()->getHttpHeader ('addr','remote');
      
      $this->pager = new sfDoctrinePager('Usuario', sfConfig::get('app_cliente_x_pag'));
      $this->pager->setQuery($this->consulta);
      $this->pager->setPage($this->getUser()->getAttribute('page'));
      $this->pager->init();


      

  }
  
    public function executeFiltrosInternos(sfWebRequest $request){
    
     $this->filtro = new UsuarioFormFilter($this->getUser()->getAttribute('usuario_filters'));
     $this->filtroAdicional = $request->getParameter('filtroAdicional');
     
     $this->adicional = $request->getParameter('adicional');
    
       
    }
    
    public function executeFiltros(sfWebRequest $request){
    
     $this->filtro = new UsuarioFormFilter($this->getUser()->getAttribute('usuario_filters'));
     $this->filtroAdicional = $request->getParameter('filtroAdicional');
    
       
    }
    

  public function executeCreateProgramarLlamada(sfWebRequest $request)
  {
    $this->forward404Unless($request->isMethod(sfRequest::POST));

    $this->form = new LlamadaProgramadaForm();
    $this->form->setWidget('categoria_id', new sfWidgetFormInputHidden(array(),array('value' => 1)));
    $this->form->setWidget('status', new sfWidgetFormInputHidden(array(),array('value' => 0)));
    $this->processForm($request, $this->form);
    $this->redirect('dashboard/index');
  }
  
  
  
  
  
  public function executeReset(sfWebRequest $request)
  {
    $this->getUser()->getAttributeHolder()->remove('usuario_filters');
    $this->getUser()->getAttributeHolder()->remove('usuario_consulta');
    //$this->getUser()->getAttributeHolder()->remove('usuario_query');
    
    $this->redirect('dashboard/index');
  }

  public function executeCliente(sfWebRequest $request)
  {
    
      
      //if ( ($request->isXmlHttpRequest()) && ($request->getParameter('idUser'))){
      
          
        $this->idAgendado     = $request->getParameter('idAgendado');

        $usuarios = new Usuario();
        $this->usuarios = $usuarios->getUsuariosId($request->getParameter('idUser'));
        
        
        
        $this->agente_id = $this->getUser()->getAttribute('agente_user');
        
        $categoria = new Categoria();
        $this->servicios = $categoria->getCategoriaPadre()->execute();
        
        
        $this->filtros = $this->getUser()->getAttribute('usuario_filters_adicional');
        $this->filtros = $this->filtros['busqueda']['text'];
       
    //}
    
    
  }
  
  //parcial para la carga de la programcion de las llamadas
  public function executeProgramacionLlamada(sfWebRequest $request)
  {
        
      
        $this->usuarioId = $request->getParameter('idUser');
        $this->style = $request->getParameter('style');
        $this->agente_id = $this->getUser()->getAttribute('agente_user');
        $categoria = new Categoria();
        $this->servicios = $categoria->getCategoriaPadre()->execute();
        
        $llamada = new Llamada();
        $this->llamadasNombre = $llamada->getLlamadasOrden();
      
        $llamadaStatus = new LlamadaStatus();
        $this->llamadasStatus = $llamadaStatus->getLlamadaStatus();
      
        
  }
  
  public function executeClienteBusqueda(sfWebRequest $request)
  {
    
      
   if ( ($request->isXmlHttpRequest()) && ($request->getParameter('idUser'))){
      
    if ( ($request->getParameter('idUser'))  ){
      
      $usuarios = new Usuario();
      $this->usuarios = $usuarios->getUsuariosId($request->getParameter('idUser'));
      
      
      $this->programar = $request->getParameter('programar');
      $this->usuariosTotal = count($this->usuarios);
       
      
          
        $this->agente_id = $this->getUser()->getAttribute('agente_user');
        
        $categoria = new Categoria();
        $this->servicios = $categoria->getCategoriaPadre()->execute();
        
        
        $this->idUser = $request->getParameter('idUser');
          
      
          

        
    }
   }
    
  }
    
    
  public function executeClienteXML(sfWebRequest $request)
  {
    if ( ($request->isXmlHttpRequest()) && ($request->getParameter('idUser'))){
      
        $usuarios = new Usuario();
        $this->usuarios = $usuarios->getUsuariosId($request->getParameter('idUser'));
        
        $this->agente_id = $this->getUser()->getAttribute('agente_user');
        
        $categoria = new Categoria();
        $this->servicios = $categoria->getCategoriaPadre()->execute();
     }  
   }
    
  public function suma_fechas($fecha, $ndias)
  {  
                list($ano,$mes,$dia)= explode("-", $fecha);
                $valor = explode(" ", $dia);
                $dia =  $valor[0];            
                $nueva =  mktime(0,0,0, $mes,$dia,$ano) + $ndias * 24 * 60 * 60;
                $nuevafecha=date("Y-m-d",$nueva);
        return ($nuevafecha);
  }
    
  public function executeAgendado(sfWebRequest $request)
  {
            
      
      $this->getUser()->setAttribute('urlagendado', $_SERVER['HTTP_REFERER']);
      
             $this->permisos = $this->getUser()->getGuardUser()->getPermissions();
      
      
            //Tipo de Opcion del Usuario
             $this->opVista=$request->getParameter('opVista');
             $this->ejecucionProceso=$request->getParameter('ejecucionProceso');
            //Recibe el Id del usuario para agendar y Busca el usuario con ese asi
            $this->idUser=$request->getParameter('idUser');
            $this->servicio_id=$request->getParameter('servicio_id');
            $this->camioneta_id = 0;
            
            $this->fechaPista = $request->getParameter('fechaPista');
            
            $usuarios = new Usuario();
            $this->usuarios = $usuarios->getUsuarioId($this->idUser);
            
            $camioneta = new Camioneta();
            if ($request->getParameter('servicio_id')){
                $this->camionetas = $camioneta->getCamioneta_por_servicio($request->getParameter('servicio_id'));
            }else{
                $this->camionetas = $camioneta->getCamionetas();
            }

            if ($request->getParameter('idUser')){
            $cronogramaCamioneta = new CronogramaCamioneta();
            $this->cronogramas = $cronogramaCamioneta->getCronogramaServicio($this->usuarios->getParroquia()->getZonaId(),$this->servicio_id);
           
            }else{
                
              $this->cronogramas = '';  
            }
            
            $semanas = new Semana();
            $this->semanas = $semanas->getCantidad();        

            $categoria = new Categoria();
            $this->servicios = $categoria->getCategoriaPadre()->execute();

            //////////////     INICIO DEL AGENDADO DEL CLIENTE ///////
                //        agendado:
                //            id: 1
                //            nombre: agendado
                //        recuperado:
                //            id: 2
                //            nombre: recuperado
                //        reagendado:
                //            id: 3
                //            nombre: reagendado
                //        cancelado:
                //            id: 4
                //            nombre: cancelado  
                //        realizado:
                //            id: 5
                //            nombre: realizado

            $agendado = new Agendado();
            $this->formDescuento = new DescuentoForm();
            
            
            $usuario_id = $this->idUser;
            $agente_id = $this->getUser()->getAttribute('agente_user');


            if($request->getParameter('idAgendado')){
                $agendado1 = $agendado->getAgendadoId($request->getParameter('idAgendado'));
                
                $this->form = new AgendadoForm($agendado1);
                $this->agendado_status_id = 3;
                $this->tiempoDuracion = $agendado1->getDuracion();
                $this->camioneta_id = $agendado1->getCamionetaId();
                $fecha = explode(' ', $agendado1->getFechaAsig());
                $this->fechaCalendario = $fecha[0];
                $hora = explode(':', $fecha[1]);
                $this->tiempoInicial  = $hora[0].":".$hora[1];
                $this->formDescuento->setWidget('monto', new sfWidgetFormInput(array(),array('value' => $agendado1->getDescuento()->getMonto())));
                $this->formDescuento->setWidget('nota', new sfWidgetFormTextarea(array('default' => $agendado1->getDescuento()->getNota()),array()));
                $this->idAgendado = $request->getParameter('idAgendado');

            }else {
                $this->form = new AgendadoForm();            
                $this->agendado_status_id = 1;
                $this->tiempoDuracion = "60";
                
                if ($request->getParameter('idUser'))
                $this->camioneta_id   = $this->usuarios->getParroquia()->getZona()->getArea()->getCamioneta()->getFirst()->getId();
                
                //Validacion para candelario dependiendo del Tiempo de la vista
                
                
                $this->fechaCalendario = date('Y').'-'.date('m').'-'.date('d');
                
                //Cuando des visto en el Antes
                if($this->ejecucionProceso=='antes')
                $this->fechaCalendario = date( "Y-m-d",mktime(0,0,0,date('m'),date('d')-1,date('Y')) );
                
                //Cuando des visto en el Antes
                if($this->ejecucionProceso=='despues')
                $this->fechaCalendario = date( "Y-m-d",mktime(0,0,0,date('m'),date('d')+1,date('Y')) );
                
                
                $this->tiempoInicial  = "16:00";
                $this->idAgendado = '';
            }
            
            $this->form->setWidget('agente_id', new sfWidgetFormInputHidden(array(),array('value' => $agente_id)));
            $this->form->setWidget('usuario_id', new sfWidgetFormInputHidden(array(),array('value' => $usuario_id)));
            $this->form->setWidget('camioneta_id', new sfWidgetFormInputHidden(array(),array('value' => $this->camioneta_id)));
            $this->form->setWidget('cod_agendado', new sfWidgetFormInputHidden(array(),array('value' => $usuario_id)));
            $this->form->setWidget('fecha_asig', new sfWidgetFormInputHidden(array(),array('value' => $this->fechaCalendario." ".$this->tiempoInicial)));
            $this->form->setWidget('duracion', new sfWidgetFormInputHidden(array(),array('value' => $this->tiempoDuracion)));
            $this->form->setWidget('agendado_status_id', new sfWidgetFormInputHidden(array(),array('value' => $this->agendado_status_id )));
            $this->form->setWidget('servicio_tipo_id', new sfWidgetFormInputHidden(array(),array('value' => $this->servicio_id )));
            $this->form->setWidget('confirmacion_id', new sfWidgetFormInputHidden(array(),array('value' => 1)));

                
            
            
            $this->formDescuento->setWidget('agente_id', new sfWidgetFormInputHidden(array(),array('value' => $this->getUser()->getAttribute('agente_user'))));
            $this->formDescuento->setWidget('is_aprobado', new sfWidgetFormInputHidden(array(),array('value' => 1)));
            //$this->formDescuento->setWidget('monto', new sfWidgetFormInput());

            $this->periodo = array();
            $this->atendido = array();
            $this->fecha= array();
            $this->fechaProx= array();
            $llamadaServicio = new LlamadaServicio();

            foreach ($this->servicios as $servicio){    

                $llamadaServicios = $llamadaServicio->getLlamadaServicio($this->idUser, $servicio->getId());            
                if($llamadaServicios){
                    $this->periodo[$servicio->getId()]=  $llamadaServicios->getPeriodicidad();
                }else {                
                    $this->periodo[$servicio->getId()]=  0;
                }

                $agendados = $agendado->getAgendadoUltimoServicio($this->idUser, 4, $servicio->getId());
                if($agendados){
                    $this->atendido[$servicio->getId()] = $agendados->getCamioneta();
                    $this->fecha[$servicio->getId()] = $agendados->getFechaAsig();
                    $this->fechaProx[$servicio->getId()] = $this->suma_fechas($this->fecha[$servicio->getId()], $this->periodo[$servicio->getId()]);
                }else {
                    $this->atendido[$servicio->getId()] = 0;
                    $this->fecha[$servicio->getId()] = 0;
                    $this->fechaProx[$servicio->getId()] = date('Y'-1).'-'.date('m').'-'.date('d');
                }
            }         
           
    }
  
    public function executeAgendadoCalendario(sfWebRequest $request)
    {
        if ($request->isXmlHttpRequest()){
            $usuarios = new Usuario();
            //Tipo de Opcion del Usuario
            $this->opVista=$request->getParameter('opVista');
            $this->ejecucionProceso=$request->getParameter('ejecucionProceso');
            $this->usuarios = $usuarios->getUsuariosId($request->getParameter('idUser'));
            $this->tiempoDuracion = $request->getParameter('tiempoDuracion');
            $this->idUser=$request->getParameter('idUser');
            $this->tiempoInicial  = $request->getParameter('tiempoInicial');
            $this->camioneta_id = $request->getParameter('camioneta_id');
            $this->fechaCalendario = $request->getParameter('fechaCalendario');
            $this->idAgendado =  $request->getParameter('idAgendado');
            $this->servicio_id=$request->getParameter('servicio_id');
            $camioneta = new Camioneta();
            if ($request->getParameter('servicio_id')>=1){
                
                
            $this->camionetas = $camioneta->getCamioneta_por_servicio($request->getParameter('servicio_id'));
                
                
            }elseif($this->ejecucionProceso=='durante'){
                
                $this->camionetas = $camioneta->getCamionetas();
            }
            
            else{
                
                $this->camionetas = $camioneta->getCamionetas();
                
            }
            
        }
    }
    
    public function executeLlamadasCanceladas(sfWebRequest $request)
    {
        
       if ($request->isXmlHttpRequest()){
            $usuarios = new Usuario();
            //Tipo de Opcion del Usuario
            $this->opVista=$request->getParameter('opVista');
            $this->ejecucionProceso=$request->getParameter('ejecucionProceso');
            $this->usuarios = $usuarios->getUsuariosId($request->getParameter('idUser'));
            $this->tiempoDuracion = $request->getParameter('tiempoDuracion');
            $this->idUser=$request->getParameter('idUser');
            $this->tiempoInicial  = $request->getParameter('tiempoInicial');
            $this->camioneta_id = $request->getParameter('camioneta_id');
            $this->fechaCalendario = $request->getParameter('fechaCalendario');
            $this->idAgendado =  $request->getParameter('idAgendado');
            $this->servicio_id=$request->getParameter('servicio_id');
            $camioneta = new Camioneta();
            if ($request->getParameter('servicio_id')){
                $this->camionetas = $camioneta->getCamioneta_por_servicio($request->getParameter('servicio_id'));
            }if($this->ejecucionProceso=='durante'){
                $this->camionetas = $camioneta->getCamionetas();
            }
            
            else{
                $this->camionetas = $camioneta->getCamionetas();
            }
            
        } 
        
        
    }
    
  
    public function executeAgendadoRe(sfWebRequest $request)
    {
        
        
        
        $this->getUser()->setAttribute('urlagendado', $_SERVER['HTTP_REFERER']);
        
            //Tipo de Opcion del Usuario
            $this->ejecucionProceso=$request->getParameter('ejecucionProceso');
            //Recibe el Id del usuario para agendar y Busca el usuario con ese asi
            $this->idUser=$request->getParameter('idUser');
            $this->servicio_id=$request->getParameter('servicio_id');
            $this->cerrar=$request->getParameter('cerrar');
            
            
            
        
    }
    
        public function executeHistorial(sfWebRequest $request)
  {
     
        $this->usuario_id = $request->getParameter('usuario_id');

        $agendado = new Agendado();
        $this->agendados = $agendado->getHistoricoImp($this->usuario_id);
    
    
  }
  
  
  
  public function executeClienteHtml(sfWebRequest $request)
  {
    
      
      //if ( ($request->isXmlHttpRequest()) && ($request->getParameter('idUser'))){
      
        $this->idAgendado     = 0;
        $this->idAgendado     = $request->getParameter('idAgendado');
        
        $usuarios = new Usuario();
        $this->usuarios = $usuarios->getUsuariosId($request->getParameter('idUser'));
        
        $this->agente_id = $this->getUser()->getAttribute('agente_user');
        
        $categoria = new Categoria();
        $this->servicios = $categoria->getCategoriaPadre()->execute();
        
        
        $this->filtros = $this->getUser()->getAttribute('usuario_filters_adicional');
        $this->filtros = $this->filtros['busqueda']['text'];
       
    //}
    
    
  }
  
  
  
    
}
